﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NetFrameworkExtensions.Enterprise
{
  public interface IServiceManager :
    IServiceProvider
  {
    IEnumerable<TService> GetAllInstances<TService>();

    IEnumerable<object> GetAllInstances(Type serviceType);

    TService GetInstance<TService>();

    TService GetInstance<TService>(string key);

    object GetInstance(Type serviceType);

    object GetInstance(Type serviceType, string key);
  }
}
